home *** CD-ROM | disk | FTP | other *** search
- Begin:
- CLS : Z1% = 0: IN$ = "": ENT% = 0: MSG$ = "": cwdata$ = ""
- LOCATE 5, 15: PRINT " *************************************************"
- LOCATE 6, 15: PRINT " * FreeWare NOT for SALE !!! *"
- LOCATE 7, 15: PRINT " *************************************************"
- LOCATE 8, 15: PRINT " * Random Tone Generator Program *"
- LOCATE 9, 15: PRINT " * with CW Message ID'er that can be time set. *"
- LOCATE 10, 15: PRINT " * Intended for Hidden Transmitter Hunts *"
- LOCATE 11, 15: PRINT " * *"
- LOCATE 12, 15: PRINT " * by D.R. ' Kuby ' Kubichek, N6JSX/9 *"
- LOCATE 13, 15: PRINT " * Version 1a *"
- LOCATE 14, 15: PRINT " * (copyright) 1994, Kuby Konsulting *"
- LOCATE 15, 15: PRINT " * Manitowoc, WI - All rights reserved *"
- LOCATE 16, 15: PRINT " * *"
- LOCATE 17, 15: PRINT " *************************************************"
- SOUND 880, 5: SOUND 987.77, 5: SOUND 783.99, 8: SOUND 392, 8: SOUND 587.33, 15
- FOR A% = 1 TO 10: SOUND 32767, 5: NEXT A%: CLS
-
- F% = 1200: ' CW ID audio tone frequency
- W% = 20: ' Initial CODE speed WPM
- IDER% = 150: ' ID'er interval
-
- CWDATread:
- IF cwdata$ <> "" THEN GOTO 100
- ON ERROR GOTO 100
- OPEN "CW.DAT" FOR INPUT AS #1
- IF EOF(1) THEN CLOSE #1
- INPUT #1, cwdata$
- 100 CLOSE #1: RESET
-
- Start:
- CLS : hold% = 0: Z2% = 0
- LOCATE 2, 15: PRINT " N6JSX/9 Amateur Radio Hidden Transmitter"
- LOCATE 3, 15: PRINT " Random Audio Tones and CW-ID'er Program"
- LOCATE 4, 15: PRINT "_______________________________________________"
- LOCATE 5, 15: PRINT " Program Menu"
- LOCATE 6, 15: PRINT
- LOCATE 7, 15: PRINT " A = Start Random Tones ONLY"
- LOCATE 8, 15: PRINT " B = Create NEW CW.DAT file"
- LOCATE 9, 15: PRINT " C = Toggle CW ID on"
- LOCATE 10, 15: PRINT " D = ID'er timing set"
- LOCATE 11, 15: PRINT " E = Restart Program"
- LOCATE 12, 15: PRINT " ESC = Quit Program or STOP Tones"
- LOCATE 13, 15: PRINT "_______________________________________________"
- LOCATE 14, 15: PRINT
- LOCATE 15, 15: PRINT " This is the current CW.DAT file:"
- LOCATE 16, 15: PRINT " >>> "; cwdata$; " <<<"
- LOCATE 17, 15: PRINT
- LOCATE 18, 15: PRINT " The CW ID speed is about"; W%; "WPM."
- LOCATE 19, 15: PRINT " CW ID interval is"; IDER%; "PC timing counts."
- LOCATE 22, 15: PRINT " Make your selection and press <──┘ ENTER"
- '---------------------------------------------------------------------
- DO
- IN$ = INKEY$
- IF IN$ = CHR$(27) THEN GOTO ENDIT
- IF IN$ <> "" THEN GOSUB Menu
- LOOP
- Menu:
- IF IN$ = "A" OR IN$ = "a" THEN GOTO RandomTones
- IF IN$ = "B" OR IN$ = "b" THEN GOTO CWenter
- IF IN$ = "C" OR IN$ = "c" GOTO CWDATsend
- IF IN$ = "D" OR IN$ = "d" THEN GOTO IDERset
- IF IN$ = "E" OR IN$ = "e" THEN GOTO Begin
- IF IN$ = CHR$(27) THEN GOTO ENDIT
- RETURN
-
- RandomTones:
- Z% = 30000: R% = 20: Z2% = 1: IN$ = "": CLS
- DO UNTIL IN$ = CHR$(27) OR IN$ = "E" OR IN$ = "e"
- RANDOMIZE Z%
- X% = INT(RND * Z%)
- Y% = INT(RND * X%)
- U% = ABS(RND * Y%) + 40
- IF U% >= 20000 THEN U% = 32767
- IN$ = INKEY$
- RANDOMIZE R
- S1% = INT(RND * R%)
- T% = ABS(RND * S1%) + 1
- IN$ = INKEY$
- SOUND U%, T%
- IN$ = INKEY$
- Z% = Z% + 1
- ZZ% = ZZ% + 1
- IF Z1% >= 1 AND ZZ% >= ABS(IDER%) THEN PRINT TIME$, : GOSUB CWDATsend: PRINT
- IF Z% >= 40000 THEN Z% = 30000
- LOOP
- GOSUB Begin
-
- CodeGenerator:
- C$ = CHR$(ASC(I$) OR 32)
- IF C$ = "a" OR C$ = "A" THEN B$ = ".-": GOTO CWsend
- IF C$ = "b" OR C$ = "B" THEN B$ = "-...": GOTO CWsend
- IF C$ = "c" OR C$ = "C" THEN B$ = "-.-.": GOTO CWsend
- IF C$ = "d" OR C$ = "D" THEN B$ = "-..": GOTO CWsend
- IF C$ = "e" OR C$ = "E" THEN B$ = ".": GOTO CWsend
- IF C$ = "f" OR C$ = "F" THEN B$ = "..-.": GOTO CWsend
- IF C$ = "g" OR C$ = "G" THEN B$ = "--.": GOTO CWsend
- IF C$ = "h" OR C$ = "H" THEN B$ = "....": GOTO CWsend
- IF C$ = "i" OR C$ = "I" THEN B$ = "..": GOTO CWsend
- IF C$ = "j" OR C$ = "J" THEN B$ = ".---": GOTO CWsend
- IF C$ = "k" OR C$ = "K" THEN B$ = "-.-": GOTO CWsend
- IF C$ = "l" OR C$ = "L" THEN B$ = ".-..": GOTO CWsend
- IF C$ = "m" OR C$ = "M" THEN B$ = "--": GOTO CWsend
- IF C$ = "n" OR C$ = "N" THEN B$ = "-.": GOTO CWsend
- IF C$ = "o" OR C$ = "O" THEN B$ = "---": GOTO CWsend
- IF C$ = "p" OR C$ = "P" THEN B$ = ".--.": GOTO CWsend
- IF C$ = "q" OR C$ = "Q" THEN B$ = "--.-": GOTO CWsend
- IF C$ = "r" OR C$ = "R" THEN B$ = ".-.": GOTO CWsend
- IF C$ = "s" OR C$ = "S" THEN B$ = "...": GOTO CWsend
- IF C$ = "t" OR C$ = "T" THEN B$ = "-": GOTO CWsend
- IF C$ = "u" OR C$ = "U" THEN B$ = "..-": GOTO CWsend
- IF C$ = "v" OR C$ = "V" THEN B$ = "...-": GOTO CWsend
- IF C$ = "w" OR C$ = "W" THEN B$ = ".--": GOTO CWsend
- IF C$ = "x" OR C$ = "X" THEN B$ = "-..-": GOTO CWsend
- IF C$ = "y" OR C$ = "Y" THEN B$ = "-.--": GOTO CWsend
- IF C$ = "z" OR C$ = "Z" THEN B$ = "--..": GOTO CWsend
- IF C$ = "1" THEN B$ = ".----": GOTO CWsend
- IF C$ = "2" THEN B$ = "..---": GOTO CWsend
- IF C$ = "3" THEN B$ = "...--": GOTO CWsend
- IF C$ = "4" THEN B$ = "....-": GOTO CWsend
- IF C$ = "5" THEN B$ = ".....": GOTO CWsend
- IF C$ = "6" THEN B$ = "-....": GOTO CWsend
- IF C$ = "7" THEN B$ = "--...": GOTO CWsend
- IF C$ = "8" THEN B$ = "---..": GOTO CWsend
- IF C$ = "9" THEN B$ = "----.": GOTO CWsend
- IF C$ = "0" THEN B$ = "-----": GOTO CWsend
- IF C$ = "." THEN B$ = ".-.-.-": GOTO CWsend
- IF C$ = "?" THEN B$ = "..--..": GOTO CWsend
- IF C$ = "," THEN B$ = "--..--": GOTO CWsend
- IF C$ = "-" THEN B$ = "-...-": GOTO CWsend
- IF C$ = "/" THEN B$ = "-..-.": GOTO CWsend
- IF I$ = " " THEN B$ = " ": GOTO CWsend
-
- CWsend:
- PRINT I$; : 'Display while sending
- FOR C% = 1 TO LEN(B$)
- IF MID$(B$, C%, 1) = "." THEN SOUND F%, S% / 2 ELSE IF MID$(B$, C%, 1) = "-" THEN SOUND F%, S% * 1.5 ELSE SOUND 32767, S% * .5
- SOUND 32767, S% / 2: 'Space after Dot/Dash
- NEXT C%: 'Get the next Dot or Dash
- SOUND 32767, S% * .75: 'Space after letter
- RETURN
-
- IDERset:
- CLS : Z1% = 1: Z2% = 1
- LOCATE 2, 15: PRINT " N6JSX/9 Amateur Radio"
- LOCATE 3, 15: PRINT " Hidden Transmitter Sound and CW-ID'er Program"
- LOCATE 4, 15: PRINT "_______________________________________________"
- LOCATE 5, 15: PRINT " Computer timing counts"
- LOCATE 6, 15: PRINT " (approximate) "
- LOCATE 7, 15: PRINT " 1 min [ 150 ] default "
- LOCATE 8, 15: PRINT " 2 min 300 "
- LOCATE 9, 15: PRINT " 3 min 450 "
- LOCATE 10, 15: PRINT " 4 min 600 "
- LOCATE 11, 15: PRINT " 5 min 750 "
- LOCATE 12, 15: PRINT " 9 min 1350 "
- LOCATE 13, 15: PRINT
- LOCATE 14, 15: PRINT " Code Speed in Words per Minute"
- LOCATE 15, 15: PRINT " Any speed from 1 - [ 20 ] WPM"
- LOCATE 16, 15: PRINT
- LOCATE 17, 15: PRINT " Current timing count"; IDER%; "at about"; W%; "WPM."
- LOCATE 18, 15: PRINT
- LOCATE 19, 15: INPUT " Enter CW ID PC timing count"; IDER%
- LOCATE 20, 15: INPUT " Enter CW ID WPM"; W%
- IF ABS(IDER%) <= 0 THEN IDER% = 150
- IF ABS(W%) < 1 OR ABS(W%) > 20 THEN W% = 20
- LOCATE 21, 15: PRINT " Timing count is"; ABS(IDER%); "at about"; ABS(W%); "WPM."
- LOCATE 23, 15: PRINT " Press any key to continue"
- DO
- IF INKEY$ <> "" THEN GOSUB Start
- LOOP
-
- CWDATsend:
- S% = 21 / W%: ' CW Tone duration formula
- Z1% = 1: SOUND 32767, 5
- ZZ% = 0: ' ID'er count reset for next cycle
- IF ENT% >= 1 THEN GOTO 140
- IF MSG$ <> "" THEN GOTO 160
- 140 ON ERROR GOTO 150
- OPEN "CW.DAT" FOR INPUT AS #2
- IF EOF(2) THEN CLOSE #2
- INPUT #2, MSG$
- 150 CLOSE #2: CLOSE
- 160 FOR I% = 1 TO LEN(MSG$)
- I$ = MID$(MSG$, I%, 1): GOSUB CodeGenerator
- NEXT I%
- IF ENT% >= 1 THEN GOSUB Begin
- IF Z2% >= 1 THEN RETURN ELSE GOSUB Start
-
- CWenter:
- OPEN "CW.DAT" FOR OUTPUT AS #1
- CLS
- LOCATE 1, 15: PRINT " N6JSX/9 Amateur Radio"
- LOCATE 3, 15: PRINT " Hidden Transmitter Sound and CW-ID'er Program"
- LOCATE 4, 15: PRINT "_______________________________________________"
- LOCATE 5, 10: PRINT " CW.DAT file editor"
- LOCATE 6, 10: PRINT ""
- LOCATE 7, 15: PRINT "Press <──┘ ENTER twice when done with text input."
- LOCATE 8, 1: PRINT " Usable charaters are ABC... or abcdefghijklmnopqrstuvwxyz 1234567890 ,-?./"
- LOCATE 10, 15: PRINT "Enter text below to be stored in the file CW.DAT:"
- PRINT : PRINT
- LINE INPUT "Input text now: "; TEXT$
- ENT% = 1
- PRINT #1, CHR$(34); TEXT$; " "; CHR$(34): CLOSE #1: CLOSE : CLS : GOSUB CWDATsend
-
- ENDIT:
- END
-
-